﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Imports System.Collections.ObjectModel

Namespace roncliProductions.LibWowArmory.Character

    ''' <summary>
    ''' A class containing information about a character's talent build.
    ''' </summary>
    ''' <remarks></remarks>
    Public Class Talent

        ''' <summary>
        ''' Indicates whether this is the character's currently selected talent spec.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Selected As Boolean

        ''' <summary>
        ''' The name of the primary talent tree for this spec.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Name As String

        ''' <summary>
        ''' The path leading to the primary talent tree's icon on the server.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Icon As String

        ''' <summary>
        ''' A string representing the talent build.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks>Each character is a digit that represents the number of talent points in a talent.  The order of the characters is so that the first character represents the first talent in the first tier of the first talent tree, and continues through the talents in that tier, then through the tiers of that talent tree, and likewise through the rest of the talent trees.</remarks>
        Public Property Build As String

        Private colTrees As Collection(Of Tree)
        ''' <summary>
        ''' A list of the character's talent trees.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public ReadOnly Property Trees As Collection(Of Tree)
            Get
                Return colTrees
            End Get
        End Property

        ''' <summary>
        ''' The character's equipped glyphs.
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Glyphs As Glyphs

        Protected Friend Sub New(blnSelected As Boolean, strName As String, strIcon As String, strBuild As String, tTrees As Collection(Of Tree), gGlyphs As Glyphs)
            Selected = blnSelected
            Name = strName
            Icon = strIcon
            Build = strBuild
            colTrees = tTrees
            Glyphs = gGlyphs
        End Sub

    End Class

End Namespace
